package nowCoder;

/**
 * Created by Ghost on 2015/1/27 0027.
 * 某星球上出现了一种怪物， 这种怪物是单亲繁殖，从出生起第3个月起每个月就能繁衍一批后代共m个，
 * 但是这种怪物很短命，生存第5个月后就会毙命。目前该星球有一个这样的怪物，请编写程序计算n个月后怪物的总数。
 */
public class MonstersNum {
    int[][] matrix;

    public int calculate(int m, int n) {
        matrix = new int[n + 1][2];
        matrix[0][0] = 0;
        matrix[0][1] = 0;
        matrix[1][0] = 1;
        matrix[1][1] = 1;

        for (int i = 2; i <= n; i++) {
            matrix[i][1] = m * matrix[i - 2][0];
            if (i < 5) {
                matrix[i][0] = m * matrix[i - 2][0] + matrix[i - 1][0];
            } else {
                matrix[i][0] = m * matrix[i - 2][0] + matrix[i - 1][0] - matrix[i-5][1];
            }
        }

        return matrix[n][0];
    }

    public static void main(String[] args){
        MonstersNum monstersNum = new MonstersNum();
        for(int i=1;i<=10;i++)
            System.out.println(monstersNum.calculate(1,i));
    }
}
